import type { VersionTypeEnum, PayTypeEnum, TypeEnum } from '@/core/enums/type'
import type { ServiceStatusEnum, PayStatusEnum } from '@/core/enums/status'
import type { OrderKeyword } from '@/core/interfaces/keyword'
import type { AuthPack, Pack } from '@/core/interfaces/base'
import type { ComboPricePack } from '@/core/interfaces/combo'
import type { CampaignIds } from '@/core/interfaces/campaign'
import { IsFromHjzwEnum } from '@/core/enums/type'
import { ProductEnum } from '@/core/enums/platform'


export interface Order
  extends Pack,
    AuthPack,
    Omit<ComboPricePack, 'comboId' | 'comboPriceId'>,
    Omit<CampaignIds, 'pcWapCampaignId'> {
  priceAskId: number
  orderNo: string
  type: TypeEnum
  schedulingTimes: number
  onLinePeriod: string
  orderPrice: number
  payType: PayTypeEnum
  discount: number
  bzCoinPaidAmount: number
  accountPaidAmount: number
  orderWords: OrderKeyword[]
  payStatus: PayStatusEnum
  serviceStatus: ServiceStatusEnum
  versionType: VersionTypeEnum
  soldAreas: string
  oldOrderId?: number
  orderWordsStr: string
  marketPrice: number
  shopType?: number
  hzTransferCode?: IsFromHjzwEnum
  hzNotes?: string
  tpCode?: number
  tpType?: string
  tpNotes?: string
  tpAmount?: number
  productId?: ProductEnum
  productName?: string
  platformNames?: string
}
